<!DOCTYPE HTML>
<html lang="zh">
<head>
<title>Nginx 中文文档 - Changes | Docs4dev</title>
<meta charset="UTF-8">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content="Nginx (engine x) 是一个高性能的HTTP和反向代理服务，也是一个IMAP/POP3/SMTP服务。">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="HandheldFriendly" content="true">
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta property="og:type" content="website">
<meta property="og:title" content="Nginx 中文文档 - Changes">
<meta property="og:url" content="https://www.docs4dev.com/docs/zh/nginx/current/reference/njs-changes.html">
<meta property="og:site_name" content="Docs4dev">
<meta property="og:locale" content="zh_CN">
<meta name="twitter:card" content="Nginx (engine x) 是一个高性能的HTTP和反向代理服务，也是一个IMAP/POP3/SMTP服务。">
<meta name="generator" content="Docs4dev template engine">
<link rel="stylesheet" href="static/css/app.min.css">
<link rel="shortcut icon" href="https://www.docs4dev.com/static/images/favicon.ico" type="image/x-icon">
<script async="" src="static/js/js.js"></script>
<script async="" src="static/js/adsbygoogle.js" crossorigin="anonymous"></script>
<script>
    window.dataLayer = window.dataLayer || [];

    function gtag() {
      dataLayer.push(arguments);
    }

    gtag('js', new Date());
    gtag('config', 'UA-129571937-1');
  </script>
<link rel="amphtml" href="https://www.docs4dev.com/amp/docs/zh/nginx/current/reference/njs-changes.html">
<script type="application/ld+json">{"name":null,"headline":"Nginx 中文文档-Changes","inLanguage":"zh-CN","version":"current","image":"/static/icon/icon-nginx.svg","datePublished":"2021-05-20T12:51:01Z","dateCreated":"2021-05-20T12:51:01Z","dateModified":"2021-07-07T12:48:29Z","@context":"https://schema.org/","@type":"APIReference","abstract":"Nginx (engine x) 是一个高性能的HTTP和反向代理服务，也是一个IMAP/POP3/SMTP服务。"}</script>
</head>
<body>
<div class="book with-summary">
<div class="book-summary">
<div class="logo">
<a href="index.html" style="color: inherit;">
<img src="static/picture/icon-nginx.svg" style="width: 48px; height: 48px;" alt="Logo">
</a>
<b style="color: inherit; margin-left: 8px;">Nginx 中文文档</b>
</div>
<div class="item">
<div>
<label for="version">版本</label>
<select id="version" onchange="onVersionChange(this)">
<option value="current" selected="selected">current</option>
</select>
</div>
<div style="margin-top: 8px;">
<label for="language">语言</label>
<select id="language" onchange="onLangChange(this)" value="zh">
<option value="en">English</option>
<option value="zh" selected="selected">中文</option>
</select>
</div>

</div>
<div class="item menus">
<a title="Table of Contents" style="margin-right: 8px;" href="index.html">
<i class="fa fa-chevron-left"></i>
 <span style="margin-left: 2px;">返回目录</span>
</a>
</div>
<nav role="navigation" id="navigation">
<ul class="summary">
<li class="chapter"> <a href="install.html" title="Introduction"> Introduction </a>
<ul class="articles">
<li class="chapter"> <a href="install.html" title="Installing nginx"> Installing nginx </a> </li>
<li class="chapter"> <a href="configure.html" title="从源代码构建  Nginx"> 从源代码构建 Nginx </a> </li>
<li class="chapter"> <a href="beginners_guide.html" title="Beginner's Guide"> Beginner's Guide </a> </li>
<li class="chapter"> <a href="control.html" title="Controlling nginx"> Controlling nginx </a> </li>
<li class="chapter"> <a href="events.html" title="连接处理方法"> 连接处理方法 </a> </li>
<li class="chapter"> <a href="hash.html" title="设置哈希"> 设置哈希 </a> </li>
<li class="chapter"> <a href="debugging_log.html" title="调试日志"> 调试日志 </a> </li>
<li class="chapter"> <a href="syslog.html" title="记录到系统日志"> 记录到系统日志 </a> </li>
<li class="chapter"> <a href="syntax.html" title="配置文件测量单位"> 配置文件测量单位 </a> </li>
<li class="chapter"> <a href="switches.html" title="Command-line parameters"> Command-line parameters </a> </li>
<li class="chapter"> <a href="windows.html" title="Windows 版  Nginx"> Windows 版 Nginx </a> </li>
<li class="chapter"> <a href="http-request_processing.html" title="Nginx 如何处理请求"> Nginx 如何处理请求 </a> </li>
<li class="chapter"> <a href="http-server_names.html" title="Server names"> Server names </a> </li>
<li class="chapter"> <a href="http-load_balancing.html" title="使用  Nginx 作为  HTTP 负载均衡器"> 使用 Nginx 作为 HTTP 负载均衡器 </a> </li>
<li class="chapter"> <a href="http-configuring_https_servers.html" title="配置  HTTPS 服务器"> 配置 HTTPS 服务器 </a> </li>
<li class="chapter"> <a href="stream-stream_processing.html" title="Nginx 如何处理  TCP/UDP 会话"> Nginx 如何处理 TCP/UDP 会话 </a> </li>
<li class="chapter"> <a href="njs-index.html" title="用  njs 编写脚本"> 用 njs 编写脚本 </a> </li>
</ul> </li>
<li class="chapter"> <a href="howto_build_on_win32.html" title="How-To"> How-To </a>
<ul class="articles">
<li class="chapter"> <a href="howto_build_on_win32.html" title="使用  Visual C 在  Win32 平台上构建  Nginx"> 使用 Visual C 在 Win32 平台上构建 Nginx </a> </li>
<li class="chapter"> <a href="nginx_dtrace_pid_provider.html" title="使用  DTrace pid 提供程序调试  nginx"> 使用 DTrace pid 提供程序调试 nginx </a> </li>
<li class="chapter"> <a href="http-converting_rewrite_rules.html" title="转换重写规则"> 转换重写规则 </a> </li>
<li class="chapter"> <a href="http-websocket.html" title="WebSocket proxying"> WebSocket proxying </a> </li>
</ul> </li>
<li class="chapter"> <a href="contributing_changes.html" title="Development"> Development </a>
<ul class="articles">
<li class="chapter"> <a href="contributing_changes.html" title="Contributing Changes"> Contributing Changes </a> </li>
<li class="chapter"> <a href="dev-development_guide.html" title="Development guide"> Development guide </a> </li>
</ul> </li>
<li class="chapter"> <a href="dirindex.html" title="Modules reference"> Modules reference </a>
<ul class="articles">
<li class="chapter"> <a href="dirindex.html" title="指令的字母索引"> 指令的字母索引 </a> </li>
<li class="chapter"> <a href="varindex.html" title="变量按字母顺序索引"> 变量按字母顺序索引 </a> </li>
<li class="chapter"> <a href="ngx_core_module.html" title="Core functionality"> Core functionality </a> </li>
<li class="chapter"> <a href="http-ngx_http_core_module.html" title="ngx_http_core_module"> ngx_http_core_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_access_module.html" title="ngx_http_access_module"> ngx_http_access_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_addition_module.html" title="ngx_http_addition_module"> ngx_http_addition_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_api_module.html" title="ngx_http_api_module"> ngx_http_api_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_auth_basic_module.html" title="ngx_http_auth_basic_module"> ngx_http_auth_basic_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_auth_jwt_module.html" title="ngx_http_auth_jwt_module"> ngx_http_auth_jwt_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_auth_request_module.html" title="ngx_http_auth_request_module"> ngx_http_auth_request_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_autoindex_module.html" title="ngx_http_autoindex_module"> ngx_http_autoindex_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_browser_module.html" title="ngx_http_browser_module"> ngx_http_browser_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_charset_module.html" title="ngx_http_charset_module"> ngx_http_charset_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_dav_module.html" title="ngx_http_dav_module"> ngx_http_dav_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_empty_gif_module.html" title="ngx_http_empty_gif_module"> ngx_http_empty_gif_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_f4f_module.html" title="ngx_http_f4f_module"> ngx_http_f4f_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_fastcgi_module.html" title="ngx_http_fastcgi_module"> ngx_http_fastcgi_module </a> </li>
 <li class="chapter"> <a href="http-ngx_http_flv_module.html" title="ngx_http_flv_module"> ngx_http_flv_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_geo_module.html" title="ngx_http_geo_module"> ngx_http_geo_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_geoip_module.html" title="ngx_http_geoip_module"> ngx_http_geoip_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_grpc_module.html" title="ngx_http_grpc_module"> ngx_http_grpc_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_gunzip_module.html" title="ngx_http_gunzip_module"> ngx_http_gunzip_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_gzip_module.html" title="ngx_http_gzip_module"> ngx_http_gzip_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_gzip_static_module.html" title="ngx_http_gzip_static_module"> ngx_http_gzip_static_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_headers_module.html" title="ngx_http_headers_module"> ngx_http_headers_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_hls_module.html" title="ngx_http_hls_module"> ngx_http_hls_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_image_filter_module.html" title="ngx_http_image_filter_module"> ngx_http_image_filter_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_index_module.html" title="ngx_http_index_module"> ngx_http_index_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_js_module.html" title="ngx_http_js_module"> ngx_http_js_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_keyval_module.html" title="ngx_http_keyval_module"> ngx_http_keyval_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_limit_conn_module.html" title="ngx_http_limit_conn_module"> ngx_http_limit_conn_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_limit_req_module.html" title="ngx_http_limit_req_module"> ngx_http_limit_req_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_log_module.html" title="ngx_http_log_module"> ngx_http_log_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_map_module.html" title="ngx_http_map_module"> ngx_http_map_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_memcached_module.html" title="ngx_http_memcached_module"> ngx_http_memcached_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_mirror_module.html" title="ngx_http_mirror_module"> ngx_http_mirror_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_mp4_module.html" title="ngx_http_mp4_module"> ngx_http_mp4_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_perl_module.html" title="ngx_http_perl_module"> ngx_http_perl_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_proxy_module.html" title="ngx_http_proxy_module"> ngx_http_proxy_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_random_index_module.html" title="ngx_http_random_index_module"> ngx_http_random_index_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_realip_module.html" title="ngx_http_realip_module"> ngx_http_realip_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_referer_module.html" title="ngx_http_referer_module"> ngx_http_referer_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_rewrite_module.html" title="ngx_http_rewrite_module"> ngx_http_rewrite_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_scgi_module.html" title="ngx_http_scgi_module"> ngx_http_scgi_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_secure_link_module.html" title="ngx_http_secure_link_module"> ngx_http_secure_link_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_session_log_module.html" title="ngx_http_session_log_module"> ngx_http_session_log_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_slice_module.html" title="ngx_http_slice_module"> ngx_http_slice_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_spdy_module.html" title="ngx_http_spdy_module"> ngx_http_spdy_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_split_clients_module.html" title="ngx_http_split_clients_module"> ngx_http_split_clients_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_ssi_module.html" title="ngx_http_ssi_module"> ngx_http_ssi_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_ssl_module.html" title="ngx_http_ssl_module"> ngx_http_ssl_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_status_module.html" title="ngx_http_status_module"> ngx_http_status_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_stub_status_module.html" title="ngx_http_stub_status_module"> ngx_http_stub_status_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_sub_module.html" title="ngx_http_sub_module"> ngx_http_sub_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_upstream_module.html" title="ngx_http_upstream_module"> ngx_http_upstream_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_upstream_conf_module.html" title="ngx_http_upstream_conf_module"> ngx_http_upstream_conf_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_upstream_hc_module.html" title="ngx_http_upstream_hc_module"> ngx_http_upstream_hc_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_userid_module.html" title="ngx_http_userid_module"> ngx_http_userid_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_uwsgi_module.html" title="ngx_http_uwsgi_module"> ngx_http_uwsgi_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_v2_module.html" title="ngx_http_v2_module"> ngx_http_v2_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_xslt_module.html" title="ngx_http_xslt_module"> ngx_http_xslt_module </a> </li>
<li class="chapter"> <a href="mail-ngx_mail_core_module.html" title="ngx_mail_core_module"> ngx_mail_core_module </a> </li>
<li class="chapter"> <a href="mail-ngx_mail_auth_http_module.html" title="ngx_mail_auth_http_module"> ngx_mail_auth_http_module </a> </li>
<li class="chapter"> <a href="mail-ngx_mail_proxy_module.html" title="ngx_mail_proxy_module"> ngx_mail_proxy_module </a> </li>
<li class="chapter"> <a href="mail-ngx_mail_ssl_module.html" title="ngx_mail_ssl_module"> ngx_mail_ssl_module </a> </li>
<li class="chapter"> <a href="mail-ngx_mail_imap_module.html" title="ngx_mail_imap_module"> ngx_mail_imap_module </a> </li>
<li class="chapter"> <a href="mail-ngx_mail_pop3_module.html" title="ngx_mail_pop3_module"> ngx_mail_pop3_module </a> </li>
<li class="chapter"> <a href="mail-ngx_mail_smtp_module.html" title="ngx_mail_smtp_module"> ngx_mail_smtp_module </a> </li>
<li class="chapter"> <a href="stream-ngx_stream_core_module.html" title="ngx_stream_core_module"> ngx_stream_core_module </a> </li>
<li class="chapter"> <a href="stream-ngx_stream_access_module.html" title="ngx_stream_access_module"> ngx_stream_access_module </a> </li>
<li class="chapter"> <a href="stream-ngx_stream_geo_module.html" title="ngx_stream_geo_module"> ngx_stream_geo_module </a> </li>
<li class="chapter"> <a href="stream-ngx_stream_geoip_module.html" title="ngx_stream_geoip_module"> ngx_stream_geoip_module </a> </li>
<li class="chapter"> <a href="stream-ngx_stream_js_module.html" title="ngx_stream_js_module"> ngx_stream_js_module </a> </li>
<li class="chapter"> <a href="stream-ngx_stream_keyval_module.html" title="ngx_stream_keyval_module"> ngx_stream_keyval_module </a> </li>
<li class="chapter"> <a href="stream-ngx_stream_limit_conn_module.html" title="ngx_stream_limit_conn_module"> ngx_stream_limit_conn_module </a> </li>
<li class="chapter"> <a href="stream-ngx_stream_log_module.html" title="ngx_stream_log_module"> ngx_stream_log_module </a> </li>
<li class="chapter"> <a href="stream-ngx_stream_map_module.html" title="ngx_stream_map_module"> ngx_stream_map_module </a> </li>
<li class="chapter"> <a href="stream-ngx_stream_proxy_module.html" title="ngx_stream_proxy_module"> ngx_stream_proxy_module </a> </li>
<li class="chapter"> <a href="stream-ngx_stream_realip_module.html" title="ngx_stream_realip_module"> ngx_stream_realip_module </a> </li>
<li class="chapter"> <a href="stream-ngx_stream_return_module.html" title="ngx_stream_return_module"> ngx_stream_return_module </a> </li>
<li class="chapter"> <a href="stream-ngx_stream_split_clients_module.html" title="ngx_stream_split_clients_module"> ngx_stream_split_clients_module </a> </li>
<li class="chapter"> <a href="stream-ngx_stream_ssl_module.html" title="ngx_stream_ssl_module"> ngx_stream_ssl_module </a> </li>
<li class="chapter"> <a href="stream-ngx_stream_ssl_preread_module.html" title="ngx_stream_ssl_preread_module"> ngx_stream_ssl_preread_module </a> </li>
<li class="chapter"> <a href="stream-ngx_stream_upstream_module.html" title="ngx_stream_upstream_module"> ngx_stream_upstream_module </a> </li>
<li class="chapter"> <a href="stream-ngx_stream_upstream_hc_module.html" title="ngx_stream_upstream_hc_module"> ngx_stream_upstream_hc_module </a> </li>
<li class="chapter"> <a href="stream-ngx_stream_zone_sync_module.html" title="ngx_stream_zone_sync_module"> ngx_stream_zone_sync_module </a> </li>
<li class="chapter"> <a href="ngx_google_perftools_module.html" title="ngx_google_perftools_module"> ngx_google_perftools_module </a> </li>
</ul> </li>
</ul>
</nav>
</div>
<div class="book-body">
<div class="body-inner">
<header class="book-header">
<div class="dropdown pull-right js-toolbar-action">
<a class="btn toggle-dropdown" aria-label="Language" href="#">
<i class="fa fa-globe"></i>
</a>
<div class="dropdown-menu dropdown-left">
<div class="dropdown-caret"><span class="caret-outer"></span><span class="caret-inner"></span></div>
<div class="buttons">
<button class="button size-1" onclick="changeLang('zh_CN')">中文</button>
</div>
<div class="buttons">
<button class="button size-1" onclick="changeLang('en_US')">English</button>
</div>
</div>
</div>
<a class="btn pull-right js-toolbar-action non-mobile" aria-label="Sign up" href="register.html">
<i class="fa fa-sign-in"></i> <span>注册</span>
</a>
<a class="btn pull-right js-toolbar-action non-mobile" aria-label="Sign in" href="register.html">
<i class="fa fa-sign-in"></i>
<span>登录</span>
</a>
<a class="btn pull-left js-toolbar-action btn-summary" href="#"><i class="fa fa-align-justify"></i></a>
<div class="dropdown pull-left font-settings js-toolbar-action">
<a class="btn toggle-dropdown" aria-label="Font Settings" href="#">
<i class="fa fa-font"></i>
</a>
<div class="dropdown-menu dropdown-right">
<div class="dropdown-caret"><span class="caret-outer"></span><span class="caret-inner"></span></div>
<div class="buttons">
<button class="button size-2 font-reduce">A</button>
<button class="button size-2 font-enlarge">A</button>
</div>
<div class="buttons">
<button class="button size-2 family-serif">Serif</button>
<button class="button size-2 family-sans">Sans</button>
</div>
<div class="buttons">
<button class="button size-3 theme-white">White</button>
<button class="button size-3 theme-sepia">Sepia</button>
<button class="button size-3 theme-night">Night</button>
</div>
</div>
</div>
<a class="btn pull-left js-toolbar-action non-mobile" aria-label="Home" href="zh.html">
<i class="fa fa-home"></i> <span>首页</span>
</a>
<a class="btn pull-left js-toolbar-action non-mobile" aria-label="Guide" href="javascript:window.open('https://www.javadoc.org/');">
<i class="fa fa-book"></i> <span>API Docs</span>
</a>
<a class="btn pull-left js-toolbar-action non-mobile" aria-label="Tools" href="index1.html">
<i class="fa fa-gears"></i> <span>工具</span>
</a>
 <div class="dropdown pull-left js-toolbar-action mobile">
<a class="btn toggle-dropdown" aria-label="Language" href="#">
<i class="fa fa-chevron-down"></i>
</a>
<div class="dropdown-menu dropdown-right">
<div class="dropdown-caret"><span class="caret-outer"></span><span class="caret-inner"></span></div>
<div class="buttons">
<a class="button size-1" aria-label="Home" href="zh.html">
<i class="fa fa-home"></i> <span>首页</span>
</a>
</div>
<div class="buttons">
<a class="button size-1" aria-label="Guide" href="javascript:window.open('https://www.javadoc.org/');">
<i class="fa fa-book"></i> <span>API Docs</span>
</a>
</div>
<div class="buttons">
<a class="button size-1" aria-label="Tools" href="index1.html">
<i class="fa fa-gears"></i> <span>工具</span>
</a>
</div>
</div>
</div>
<div id="autocomplete" class="pull-right"></div>
<span id="toolbar-title"></span>
</header>
<div class="page-wrapper" tabindex="-1" role="main">
<div class="page-inner">
<section class="normal markdown-section">
<div id="content">
<h1>Changes</h1>
<div><ins class="adsbygoogle" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-6108808167664152" data-ad-slot="6964403648"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script></div>
<div><p><a href="" id="njs0.4.2"></a></p>
<h4 id="njs-042-的更改"><a href="#njs-042-的更改" id="njs-042-的更改"></a>njs 0.4.2 的更改</h4>
<p>发行日期：2020 年 7 月 7 日</p>
<p>Core:</p>
<ul>
<li>
<p>功能：已添加<code>RegExp.prototype[Symbol.replace]</code>。</p>
</li>
<li>
<p>功能：引入了线路电平回溯。</p>
</li>
<li>
<p>功能：已添加<code>%TypedArray%.prototype.sort()</code>。</p>
</li>
<li>
<p>功能：扩展的<a href="njs-reference.html#njs_api_fs">fs</a>模块。添加了<a href="njs-reference.html#fs_mkdirsync">mkdir()</a>，<a href="njs-reference.html#fs_readdirsync">readdir()</a>，<a href="njs-reference.html#fs_rmdirsync">rmdir()</a>和朋友。</p>
</li>
<li>
<p>改进：解析器重构。</p>
</li>
<li>
<p>错误修正：修复了 HTTPHeaders 的 TypedScript API 描述。</p>
</li>
<li>
<p>错误修正：修复了<code>NjsByteString</code>类型的 TypedScript API 描述。</p>
</li>
<li>
<p>错误修正：根据规范修复了<code>String.prototype.repeat()</code>。</p>
</li>
<li>
<p>错误修正：根据规范修复了<code>String.prototype.replace()</code>。</p>
</li>
<li>
<p>错误修正：修复了正则表达式文字标志的解析。</p>
</li>
<li>
<p>错误修正：修复了生成器中全局对象的索引生成。</p>
</li>
<li>
<p>错误修正：修正了<code>%TypedArray%.prototype.copyWithin()</code>的字节偏移量非零。</p>
</li>
<li>
<p>错误修正：修复了稀疏数组的<code>Array.prototype.splice()</code>。</p>
</li>
<li>
<p>错误修正：修复了稀疏数组的<code>Array.prototype.reverse()</code>。</p>
</li>
<li>
<p>错误修正：修复了稀疏数组的<code>Array.prototype.sort()</code>。</p>
</li>
</ul>
<p><a href="" id="njs0.4.1"></a></p>
<h4 id="njs-041-的更改"><a href="#njs-041-的更改" id="njs-041-的更改"></a>njs 0.4.1 的更改</h4>
<p>发行日期：2020 年 5 月 19 日</p>
<p>nginx modules:</p>
<ul>
<li>
<p>功能：在<a href="njs-reference.html#r_headers_in">r.headersIn{}</a>中增加了对多值 Headers 的支持。</p>
</li>
<li>
<p>功能：引入了<code>raw headers</code> API：<a href="njs-reference.html#r_raw_headers_in">r.rawHeadersIn{}</a>和<a href="njs-reference.html#r_raw_headers_out">r.rawHeadersOut{}</a>。</p>
</li>
<li>
<p>功能：添加了<a href="njs-typescript.html">TypeScript</a> API 描述。</p>
</li>
</ul>
<p>Core:</p>
<ul>
<li>错误修正：修复了稀疏数组的<code>Array.prototype.slice()</code>。</li>
</ul>
<p><a href="" id="njs0.4.0"></a></p>
<h4 id="njs-040-的更改"><a href="#njs-040-的更改" id="njs-040-的更改"></a>njs 0.4.0 的更改</h4>
<p>发布日期：2020 年 4 月 23 日</p>
<p>nginx modules:</p>
<ul>
<li>
<p>功能：在<a href="njs-reference.html#r_headers_out">r.headersOut{}</a>中增加了对多值 Headers 的支持。</p>
</li>
<li>
<p>功能：为<a href="http-ngx_http_js_module.html#js_import">http</a>和<a href="stream-ngx_stream_js_module.html#js_import">stream</a>添加了<code>js_import</code>指令。</p>
</li>
<li>
<p>改进：改进了带有特殊 Headers 的<a href="njs-reference.html#r_headers_out">r.headersOut{}</a>的迭代。</p>
</li>
<li>
<p>改进：改进了与<a href="njs-reference.html#r_headers_out">r.headersOut{}</a>重复的迭代。</p>
</li>
<li>
<p>更改：如果响应正文不可用，<a href="njs-reference.html#r_response_body">r.responseBody</a>属性处理程序现在将返回<code>undefined</code>而不是引发异常。</p>
</li>
</ul>
<p>Core:</p>
<ul>
<li>
<p>功能：在 CLI 中添加了脚本参数支持。</p>
</li>
<li>
<p>功能：将外部值转换为本地 js 对象。</p>
</li>
<li>
<p>错误修正：修复了<code>__proto__</code>属性处理程序中的 NULL 指针取消引用。</p>
</li>
<li>
<p>错误修正：修复了脚本末尾无换行符的处理。</p>
</li>
<li>
<p>错误修正：使用空模式和非空标志修复了<code>RegExp()</code>构造函数。</p>
</li>
<li>
<p>错误修正：修复了函数返回非字符串时的<code>String.prototype.replace()</code>的问题。</p>
</li>
<li>
<p>错误修正：修复了<a href="njs-reference.html#njs_api_fs">fs</a>中伪文件的读取。</p>
</li>
</ul>
<p><a href="" id="njs0.3.9"></a></p>
<h4 id="njs-039-的更改"><a href="#njs-039-的更改" id="njs-039-的更改"></a>njs 0.3.9 的更改</h4>
<p>发行日期：2020 年 3 月 3 日</p>
<p>nginx modules:</p>
<ul>
<li>功能：为<a href="njs-reference.html#r_subrequest">r.subrequest()</a>添加了分离模式。对分离的子请求的响应将被忽略。与普通的子请求不同，可以在变量处理程序内部创建分离的子请求。</li>
</ul>
<p>Core:</p>
<ul>
<li>
<p>功能：为<a href="njs-reference.html#njs_api_fs">fs</a>模块添加了<code>promises</code> API。感谢 Artem S. Povalyukhin。</p>
</li>
<li>
<p>功能：扩展的<a href="njs-reference.html#njs_api_fs">fs</a>模块。添加了<a href="njs-reference.html#fs_accesssync">access()</a>，<a href="njs-reference.html#fs_symlinksync">symlink()</a>，<a href="njs-reference.html#fs_unlinksync">unlink()</a>，<a href="njs-reference.html#fs_realpathsync">realpath()</a>和朋友。感谢 Artem S. Povalyukhin。</p>
</li>
<li>
<p>改进：引入了内存有效的普通数组。</p>
</li>
<li>
<p>改进：词法分析器重构。</p>
</li>
<li>
<p>错误修正：修复了回溯中本机函数的匹配问题。</p>
</li>
<li>
<p>错误修正：修复了<a href="njs-reference.html#njs_api_fs">fs</a>模块中的回调调用。感谢 Artem S. Povalyukhin。</p>
</li>
<li>
<p>错误修正：修复了<code>Object.getOwnPropertySymbols()</code>。</p>
</li>
<li>
<p>错误修正：修复了<code>njs_json_append_string()</code>中的 heap-buffer-overflow。</p>
</li>
<li>
<p>错误修正：根据规范修复了<code>encodeURI()</code>和<code>decodeURI()</code>。</p>
</li>
<li>
<p>错误修正：修复了<code>Number.prototype.toPrecision()</code>。</p>
</li>
<li>
<p>错误修正：修复了<code>JSON.stringify()</code>中的 space 参数的处理。</p>
</li>
<li>
<p>错误修正：修复了<code>JSON.stringify()</code>和<code>Number()</code>和<code>String()</code>对象。</p>
</li>
<li>
<p>错误修正：根据规范，修复了<code>JSON.stringify()</code>中的 Unicode 转义。</p>
</li>
<li>
<p>错误修正：修复了 nonlocal 模块的导入。感谢洪志道。</p>
</li>
<li>
<p>错误修正：使用容器中的<code>Date()</code>实例修复了<code>njs.dump()</code>。</p>
</li>
</ul>
<p><a href="" id="njs0.3.8"></a></p>
<h4 id="njs-038-的更改"><a href="#njs-038-的更改" id="njs-038-的更改"></a>njs 0.3.8 的更改</h4>
<p>发布日期：2020 年 1 月 21 日</p>
<p>nginx modules:</p>
<ul>
<li>
<p>功能：增加了对<a href="njs-reference.html#r_subrequest">r.subrequest()</a>的<code>Promise</code>支持。如果未提供回调，则<a href="njs-reference.html#r_subrequest">r.subrequest()</a>返回解析为子请求响应对象的普通<code>Promise</code>对象。</p>
</li>
<li>
<p>更改：<a href="njs-reference.html#r_parent">r.parent</a>属性处理程序现在返回<code>undefined</code>，而不是在父对象不可用时引发异常。</p>
</li>
</ul>
<p>Core:</p>
<ul>
<li>
<p>功能：添加了<code>Promise</code>支持。根据规范实现，不包含<code>Promise.all()</code>，<code>Promise.allSettled()</code>，<code>Promise.race()</code>。</p>
</li>
<li>
<p>功能：添加了初始的 Typed-arrays 支持。感谢 Tiago Natel de Moura。</p>
</li>
<li>
<p>功能：添加了<code>ArrayBuffer</code>支持。感谢 Tiago Natel de Moura。</p>
</li>
<li>
<p>功能：添加了最初的<code>Symbol</code>支持。感谢 Artem S. Povalyukhin。</p>
</li>
<li>
<p>功能：添加了对<code>JSON.stringify()</code>的外部支持。</p>
</li>
<li>
<p>功能：已添加<code>Object.is()</code>。感谢 Artem S. Povalyukhin。</p>
</li>
<li>
<p>功能：已添加<code>Object.setPrototypeOf()</code>。感谢 Artem S. Povalyukhin。</p>
</li>
<li>
<p>功能：引入了无效的合并运算符。</p>
</li>
<li>
<p>错误修正：根据规范修复了<code>Object.getPrototypeOf()</code>。</p>
</li>
<li>
<p>错误修正：根据规范修复了<code>Object.prototype.valueOf()</code>。</p>
</li>
<li>
<p>错误修正：使用无法打印的值和替换功能修复了<code>JSON.stringify()</code>。</p>
</li>
<li>
<p>错误修正：根据规范修复了运算符<code>in</code>。</p>
</li>
<li>
<p>错误修正：根据规范修复了<code>Object.defineProperties()</code>。</p>
</li>
<li>
<p>错误修正：根据规范修复了<code>Object.create()</code>。感谢 Artem S. Povalyukhin。</p>
</li>
<li>
<p>错误修正：启用快速 math 时，修复了<code>Number.prototype.toString(radix)</code>。</p>
</li>
<li>
<p>错误修正：修复了<code>RegExp()</code>个实例属性。</p>
</li>
<li>
<p>错误修正：修复了导入段错误。感谢洪志道。</p>
</li>
</ul>
<p><a href="" id="njs0.3.7"></a></p>
<h4 id="njs-037-的更改"><a href="#njs-037-的更改" id="njs-037-的更改"></a>njs 0.3.7 的更改</h4>
<p>发行日期：2019 年 11 月 19 日</p>
<p>nginx modules:</p>
<ul>
<li>改进：在外部对象上重构迭代。</li>
</ul>
<p>Core:</p>
<ul>
<li>
<p>功能：已添加<code>Object.assign()</code>。</p>
</li>
<li>
<p>功能：已添加<code>Array.prototype.copyWithin()</code>。</p>
</li>
<li>
<p>功能：在<code>console.time()</code>中增加了对标签的支持。</p>
</li>
<li>
<p>更改：从 CLI 中删除了<code>console.help()</code>。</p>
</li>
<li>
<p>改进：将构造函数和顶级对象移至全局对象。</p>
</li>
<li>
<p>改进：配置脚本的参数验证。</p>
</li>
<li>
<p>改进：重构 JSON 方法。</p>
</li>
<li>
<p>错误修正：修复了<code>njs_array_reverse_iterator()</code>函数中的堆缓冲区溢出。以下功能受到影响：<code>Array.prototype.lastIndexOf()</code>，<code>Array.prototype.reduceRight()</code>。</p>
</li>
<li>
<p>错误修正：修复了<code>[[Prototype]]</code>插槽<code>NativeErrors</code>。</p>
</li>
<li>
<p>错误修正：修复了<code>NativeError.prototype.message</code>个属性。</p>
</li>
<li>
<p>错误修正：已将<code>this</code>值转换为<code>Array.prototype functions</code>中的对象。</p>
</li>
<li>
<p>错误修正：修复了<code>Array.prototype.find()</code>和<code>Array.prototype.findIndex()</code>函数的迭代器。</p>
</li>
<li>
<p>错误修正：使用<code>undefined</code>参数修复了<code>Array.prototype.includes()</code>和<code>Array.prototype.join()</code>。</p>
</li>
<li>
<p>错误修正：修复了<code>Hash</code>和<code>Hmac</code>对象的<code>constructor</code>属性。</p>
</li>
<li>
<p>错误修正：修复了获取器和设置器的<code>__proto__</code>属性。</p>
</li>
<li>
<p>错误修正：修复了<code>Date</code>对象字符串格式。</p>
</li>
<li>
<p>错误修正：修复了<code>Math.min()</code>和<code>Math.max()</code>中的<code>NaN</code>和<code>-0</code>参数的处理。</p>
</li>
<li>
<p>错误修正：根据规范修复了<code>Math.round()</code>。</p>
</li>
<li>
<p>错误修正：根据规范重新实现了<code>bound</code>功能。</p>
</li>
</ul>
<p><a href="" id="njs0.3.6"></a></p>
<h4 id="njs-036-的更改"><a href="#njs-036-的更改" id="njs-036-的更改"></a>njs 0.3.6 的更改</h4>
<p>发行日期：2019 年 10 月 22 日</p>
<p>nginx modules:</p>
<ul>
<li>改进：从<a href="njs-reference.html#r_headers_in">r.headersIn{}</a>获取特殊标题。</li>
</ul>
<p>Core:</p>
<ul>
<li>
<p>功能：添加了新的<code>Function()</code>支持。</p>
</li>
<li>
<p>功能：已添加<code>Number.prototype.toFixed()</code>。</p>
</li>
<li>
<p>功能：已添加<code>Number.prototype.toPrecision()</code>。</p>
</li>
<li>
<p>功能：已添加<code>Number.prototype.toExponential()</code>。</p>
</li>
<li>
<p>改进：使函数实例的<code>prototype</code>属性可写。</p>
</li>
<li>
<p>改进：在编译时限制递归深度。</p>
</li>
<li>
<p>改进：将全局功能移到全局对象。</p>
</li>
<li>
<p>错误修正：修复了对象文字的原型变异。</p>
</li>
<li>
<p>错误修正：修复了解析正则表达式文字时的堆缓冲区溢出问题。</p>
</li>
<li>
<p>错误修正：修复了数字文字指数解析时的整数溢出问题。</p>
</li>
<li>
<p>错误修正：修复了<code>parseFloat()</code>。</p>
</li>
<li>
<p>错误修正：根据规范修复了<code>Array.prototype</code>个功能。固定了以下功能：<code>every</code>，<code>includes</code>，<code>indexOf</code>，<code>filter</code>，<code>find</code>，<code>findIndex</code>，<code>forEach</code>，<code>lastIndexOf</code>，<code>map</code>，<code>pop</code>，<code>push</code>，<code>reduce</code>，<code>reduceRight</code>，<code>shift</code>，<code>some</code>，<code>unshift</code>。</p>
</li>
<li>
<p>错误修正：修复了<code>Object.freeze()</code>中访问 Descriptors 的处理。</p>
</li>
<li>
<p>错误修正：修复了第一个参数不是字符串时<code>String.prototype.replace()</code>的问题。</p>
</li>
<li>
<p>错误修正：修复了<code>Array.prototype.map()</code>中的 stack-use-after-scope。</p>
</li>
<li>
<p>错误修正：<code>Date.prototype.toUTCString()</code>格式已与 ES9 对齐。</p>
</li>
<li>
<p>错误修正：修复了<code>Number.prototype.toString(radix)</code>中的缓冲区溢出。</p>
</li>
<li>
<p>错误修正：修复了带有反向引用的正则表达式的<code>Regexp.prototype.test()</code>。</p>
</li>
<li>
<p>错误修正：修复了<code>Array.prototype.map()</code>值不存在的对象。</p>
</li>
<li>
<p>错误修正：修复了稀疏对象的<code>Array.prototype.pop()</code>和<code>shift()</code>。</p>
</li>
<li>
<p>错误修正：根据规范修复了<code>Date.UTC()</code>。</p>
</li>
<li>
<p>错误修正：根据规范修复了<code>Date()</code>构造函数。</p>
</li>
<li>
<p>错误修正：固定类型为<code>Date.prototype</code>。感谢 Artem S. Povalyukhin。</p>
</li>
<li>
<p>错误修正：修复了<code>Date.prototype.setTime()</code>。感谢 Artem S. Povalyukhin。</p>
</li>
<li>
<p>错误修正：修复了内置函数期望的默认参数个数。</p>
</li>
<li>
<p>错误修正：修复了功能实例的<code>caller</code>和<code>arguments</code>属性。感谢 Artem S. Povalyukhin。</p>
</li>
</ul>
<p><a href="" id="njs0.3.5"></a></p>
<h4 id="njs-035-的更改"><a href="#njs-035-的更改" id="njs-035-的更改"></a>njs 0.3.5 的更改</h4>
<p>发行日期：2019 年 8 月 15 日</p>
<p>Core:</p>
<ul>
<li>
<p>错误修正：修复了使用<code>require()</code>导入模块的问题。该错误是在<a href="#0.3.4">0.3.4</a>中引入的。</p>
</li>
<li>
<p>错误修正：修复了<code>[[SetPrototypeOf]]</code>。</p>
</li>
</ul>
<p><a href="" id="njs0.3.4"></a></p>
<h4 id="njs-034-的更改"><a href="#njs-034-的更改" id="njs-034-的更改"></a>njs 0.3.4 的更改</h4>
<p>发行日期：2019 年 8 月 13 日</p>
<p>Core:</p>
<ul>
<li>
<p>功能：添加了<code>Object</code>个速记方法和计算出的属性名称。感谢洪志道(洪志道)和 Artem S. Povalyukhin。</p>
</li>
<li>
<p>功能：添加了 getter/setter 文字支持。感谢洪志道(洪志道)和 Artem S. Povalyukhin。</p>
</li>
<li>
<p>功能：已添加<a href="njs-reference.html#fs_renamesync">fs.renameSync()</a>。</p>
</li>
<li>
<p>功能：添加了<code>String.prototype.trimEnd()</code>和<code>String.prototype.trimStart()</code>。</p>
</li>
<li>
<p>改进：添加了内存清理程序支持。</p>
</li>
<li>
<p>改进：Unicode 案例表已更新至版本 12.1.</p>
</li>
<li>
<p>改进：为字符串文字添加了 UTF8 验证。</p>
</li>
<li>
<p>错误修正：修复了读取<a href="njs-reference.html#readfilesync">fs.readFileSync()</a>中大小为零的文件。</p>
</li>
<li>
<p>错误修正：扩展了<code>String.prototype.trim()</code>中的空格分隔符列表。</p>
</li>
<li>
<p>错误修正：修复了<code>String.prototype.padStart()</code>中未初始化值的使用。</p>
</li>
<li>
<p>错误修正：已将<code>String.prototype.replace()</code>替换为<code>$0</code>和<code>$&amp;</code>替换字符串。</p>
</li>
<li>
<p>错误修正：使用正则表达式参数修复了字节串的<code>String.prototype.replace()</code>。</p>
</li>
<li>
<p>错误修正：使用 regexp 参数修复了<code>String.prototype.replace()</code>中的全局匹配。</p>
</li>
<li>
<p>错误修正：修正了<code>Array.prototype.slice()</code>的原始类型。</p>
</li>
<li>
<p>错误修正：修复了导入模块时堆缓冲区溢出的问题。</p>
</li>
<li>
<p>错误修正：修正了 UTF-8 字符转义的问题。</p>
</li>
<li>
<p>错误修正：修复了共享对象的<code>Object.values()</code>和<code>Object.entries()</code>。</p>
</li>
<li>
<p>错误修正：修复了<code>String.prototype.match()</code>中未初始化的内存访问。</p>
</li>
<li>
<p>错误修正：使用正则表达式参数修复了字节串的<code>String.prototype.match()</code>。</p>
</li>
<li>
<p>错误修正：使用未定义的参数修复了<code>Array.prototype.lastIndexOf()</code>。</p>
</li>
<li>
<p>错误修正：修正了<code>String.prototype.substring()</code>的子字符串为空。</p>
</li>
<li>
<p>错误修正：修复了<code>String.prototype.substring()</code>中无效的内存访问。</p>
</li>
<li>
<p>错误修正：修复了<code>String.fromCharCode()</code>的代码点超过<code>65535</code>和<code>NaN</code>的问题。</p>
</li>
<li>
<p>错误修正：修复了<code>String.prototype.toLowerCase()</code>和<code>String.prototype.toUpperCase()</code>。</p>
</li>
<li>
<p>错误修正：修复了没有参数的<code>Error()</code>构造函数。</p>
</li>
<li>
<p>错误修正：修复了带有访问 Descriptors 的值的<code>in</code>运算符。</p>
</li>
<li>
<p>错误修正：修复了非 BooleanDescriptors 道具的<code>Object.defineProperty()</code>。</p>
</li>
<li>
<p>错误修正：使用 UTF8 字符串属性修复了<code>Error.prototype.toString()</code>。</p>
</li>
<li>
<p>错误修正：使用非字符串值<code>name</code>和<code>message</code>修复了<code>Error.prototype.toString()</code>。</p>
</li>
</ul>
<p><a href="" id="njs0.3.3"></a></p>
<h4 id="njs-033-的更改"><a href="#njs-033-的更改" id="njs-033-的更改"></a>njs 0.3.3 的更改</h4>
<p>发行日期：2019 年 6 月 25 日</p>
<p>nginx modules:</p>
<ul>
<li>
<p>改进：在<a href="njs-reference.html#r_headers_out">r.headersOut{}</a>中获得特殊的响应头。</p>
</li>
<li>
<p>改进：使用<a href="njs-reference.html#r_subrequest">r.subrequest()</a>中的未知方法。</p>
</li>
<li>
<p>改进：添加了对 null 的支持，作为<a href="njs-reference.html#r_subrequest">r.subrequest()</a>的第二个参数。</p>
</li>
<li>
<p>错误修正：修复了在流主体过滤器中处理空输出链的问题。</p>
</li>
</ul>
<p>Core:</p>
<ul>
<li>
<p>功能：添加了对属性获取器/设置器的运行时支持。感谢洪志道(洪志道)和 Artem S. Povalyukhin。</p>
</li>
<li>
<p>功能：添加了<a href="njs-reference.html#process">process</a>全局对象。</p>
</li>
<li>
<p>功能：可写的大多数内置属性和方法。</p>
</li>
<li>
<p>功能：添加了<code>Array.prototype.fill()</code>的通用实现。</p>
</li>
<li>
<p>错误修正：修复了<code>String.prototype.concat()</code>中的整数溢出。</p>
</li>
<li>
<p>错误修正：修复了对象属性的设置。</p>
</li>
<li>
<p>错误修正：修复了<code>Array.prototype.toString()</code>。</p>
</li>
<li>
<p>错误修正：修复了<code>Date.prototype.toJSON()</code>。</p>
</li>
<li>
<p>错误修正：修复了覆盖内置原型的“构造函数”属性的问题。</p>
</li>
<li>
<p>错误修正：修复了字符串中无效代理对的处理。</p>
</li>
<li>
<p>错误修正：修复了 JSON 字符串中无效代理对的处理。</p>
</li>
<li>
<p>错误修正：修复了<code>toUpperCase()</code>和<code>toLowerCase()</code>中的堆缓冲区溢出。</p>
</li>
<li>
<p>错误修正：修复了在<code>RegExp()</code>构造函数中转义单独的右方括号。</p>
</li>
<li>
<p>错误修正：修复了处理 RegExp 模式字符串中的零字节字符的问题。</p>
</li>
<li>
<p>错误修正：已将<code>String.prototype.toBytes()</code>固定为 ASCII 字符串。</p>
</li>
<li>
<p>错误修正：修复了<code>JSON.parse()</code>中 JSON 数字的真值。</p>
</li>
<li>
<p>错误修正：修复了<code>njs_string_replace_join()</code>中的未初始化值的使用。</p>
</li>
<li>
<p>错误修正：修复了<code>parseInt('-0')</code>。感谢 Artem S. Povalyukhin。</p>
</li>
</ul>
<p><a href="" id="njs0.3.2"></a></p>
<h4 id="njs-032-的更改"><a href="#njs-032-的更改" id="njs-032-的更改"></a>njs 0.3.2 的更改</h4>
<p>发行日期：2019 年 5 月 21 日</p>
<p>Core:</p>
<ul>
<li>
<p>功能：增加了对模板文字的支持。感谢洪志道(洪志道)和 Artem S. Povalyukhin。</p>
</li>
<li>
<p>功能：从命令行参数执行命令。</p>
</li>
<li>
<p>功能：添加了对 RegExp <code>groups</code>对象(ES9)的支持。</p>
</li>
<li>
<p>功能：添加了块作用域函数定义支持。</p>
</li>
<li>
<p>功能：增加了对使用 GNU Readline 库进行构建的支持。</p>
</li>
<li>
<p>功能：可配置<code>length</code>，<code>name</code>和大多数内置方法。</p>
</li>
<li>
<p>功能：使所有构造函数属性均可配置。</p>
</li>
<li>
<p>错误修正：固定<code>Regexp.prototype.exec()</code>仅用于 Unicode 正则表达式。</p>
</li>
<li>
<p>错误修正：修复了<code>njs_vm_value_dump()</code>的空字符串值。</p>
</li>
<li>
<p>错误修正：修复了 Regexp 值参数的 RegExp 构造函数。</p>
</li>
<li>
<p>错误修正：修复了对象迭代期间遍历原型链的问题。</p>
</li>
<li>
<p>错误修正：修复了<code>Array.prototype.concat()</code>中的溢出。</p>
</li>
<li>
<p>错误修正：带有转义字符的 UTF-8 字符串的固定长度计算。</p>
</li>
<li>
<p>错误修正：固定解析代理对以 UTF-16 转义序列形式出现。</p>
</li>
<li>
<p>错误修正：修复了<code>String.prototype.match()</code>的“ *”量词的处理。</p>
</li>
<li>
<p>错误修正：修复了带有一个参数的<code>Date()</code>构造函数。</p>
</li>
<li>
<p>错误修正：固定阵列扩展。</p>
</li>
<li>
<p>错误修正：修复了<code>String.prototype.replace()</code>中的 heap-buffer-overflow。</p>
</li>
<li>
<p>错误修正：修复了<code>String.prototype.lastIndexOf()</code>中的 heap-buffer-overflow。</p>
</li>
<li>
<p>错误修正：修正了正则表达式文字解析，并在方括号中使用了转义的反斜杠和反斜杠。</p>
</li>
<li>
<p>错误修正：修复了带有正括号的正则表达式文字。</p>
</li>
<li>
<p>错误修正：修复了<code>Object.defineProperties()</code>中的未初始化内存访问。</p>
</li>
<li>
<p>错误修正：修复了<code>String.prototype.replace()</code>的“ *”量词的处理。</p>
</li>
<li>
<p>错误修正：修正了<code>Array.prototype.slice()</code>的 UTF8 无效字节字符串。</p>
</li>
<li>
<p>错误修正：修正了<code>String.prototype.split()</code>的 UTF8 无效字节字符串。</p>
</li>
<li>
<p>错误修正：修复了空块语句的处理。</p>
</li>
</ul>
<p><a href="" id="njs0.3.1"></a></p>
<h4 id="njs-031-的更改"><a href="#njs-031-的更改" id="njs-031-的更改"></a>njs 0.3.1 的更改</h4>
<p>发行日期：2019 年 4 月 16 日</p>
<p>Core:</p>
<ul>
<li>
<p>功能：添加了箭头功能支持。感谢洪志道(洪志道)和 Artem S. Povalyukhin。</p>
</li>
<li>
<p>功能：已添加<code>Object.getOwnPropertyNames()</code>。感谢 Artem S. Povalyukhin。</p>
</li>
<li>
<p>功能：已添加<code>Object.getOwnPropertyDescriptors()</code>。感谢 Artem S. Povalyukhin。</p>
</li>
<li>
<p>功能：使<code>Object</code>个实例的<code>__proto__</code>访问者 Descriptors 可变。</p>
</li>
<li>
<p>功能：在 CLI 中添加了 shebang 支持。</p>
</li>
<li>
<p>功能：增加了对 CLI 中模块模式执行的支持。在全局模块模式下，此功能不可用。</p>
</li>
<li>
<p>错误修正：修复了 editline 检测。</p>
</li>
<li>
<p>错误修正：修复了<code>Function.prototype.bind()</code>。感谢洪志道。</p>
</li>
<li>
<p>错误修正：修复了功能参数重复检查。感谢洪志道。</p>
</li>
<li>
<p>错误修正：修复了与变量同名的函数声明。感谢洪志道。</p>
</li>
<li>
<p>改进：与对象，变量和函数的解析有关的代码被重构。感谢洪志道。</p>
</li>
<li>
<p>改进：<code>console.log()</code>中改进了大价值输出。</p>
</li>
<li>
<p>改进：字符串输出以<code>console.log()</code>的方式得到了改进(没有转义和引号)。</p>
</li>
<li>
<p>改进：使用<code>ToInt32()</code>，<code>ToUint32()</code>，<code>ToLength()</code>的 ES6 版本。</p>
</li>
</ul>
<p><a href="" id="njs0.3.0"></a></p>
<h4 id="njs-030-的更改"><a href="#njs-030-的更改" id="njs-030-的更改"></a>njs 0.3.0 的更改</h4>
<p>发行日期：2019 年 3 月 26 日</p>
<p>nginx modules:</p>
<ul>
<li>
<p>功能：为<a href="http-ngx_http_js_module.html#js_path">http</a>和<a href="stream-ngx_stream_js_module.html#js_path">stream</a>添加了<code>js_path</code>指令。</p>
</li>
<li>
<p>更改：对于以下对象中缺少的属性，返回未定义的值而不是空字符串：<a href="njs-reference.html#r_args">r.args{}</a>，<a href="njs-reference.html#r_headers_in">r.headersIn{}</a>，<a href="njs-reference.html#r_headers_out">r.headersOut{}</a>，<a href="njs-reference.html#r_variables">r.variables{}</a>，<a href="njs-reference.html#s_variables">s.variables{}</a>。</p>
</li>
<li>
<p>更改：当请求正文不可用时，返回未定义的值，而不是引发<a href="njs-reference.html#r_request_body">r.requestBody</a>的异常。</p>
</li>
<li>
<p>错误修正：修正了键值对中不存在<a href="njs-reference.html#r_args">r.args{}</a>迭代时崩溃的问题。</p>
</li>
</ul>
<p>Core:</p>
<ul>
<li>
<p>功能：添加了最初的 ES6 模块支持。支持默认导入和默认导出语句。感谢洪志道。</p>
</li>
<li>
<p>功能：已添加<code>Object.prototype.propertyIsEnumerable()</code>。</p>
</li>
<li>
<p>功能：在反汇编输出中报告文件名和函数名。</p>
</li>
<li>
<p>错误修正：修复了交互式 shell 中的函数重新声明。感谢洪志道。</p>
</li>
<li>
<p>错误修正：修正了 RegExp 文字解析。</p>
</li>
<li>
<p>错误修正：修复了<a href="njs-reference.html#readfilesync">fs.readFileSync()</a>中 UTF8 字符串的设置长度。</p>
</li>
<li>
<p>错误修正：修复了<code>nxt_file_dirname()</code>的路径，其中没有 dir 组件。</p>
</li>
</ul>
<p><a href="" id="njs0.2.8"></a></p>
<h4 id="njs-028-的更改"><a href="#njs-028-的更改" id="njs-028-的更改"></a>njs 0.2.8 的更改</h4>
<p>发行日期：2019 年 2 月 26 日</p>
<p>nginx modules:</p>
<ul>
<li>
<p>更改：<a href="#njs0.2.2">0.2.2</a>中弃用的 HTTP 请求的属性已删除。</p>
</li>
<li>
<p>功能：在<a href="njs-reference.html#r_headers_out">r.headersOut{}</a>中添加了对删除操作的支持。</p>
</li>
<li>
<p>功能：增加了对设置 nginx 变量的支持。</p>
</li>
<li>
<p>错误修正：修正了<a href="njs-reference.html#r_subrequest">r.subrequest()</a>的空值。</p>
</li>
<li>
<p>改进：在<a href="njs-reference.html#r_headers_out">r.headersOut{}</a>中设置特殊的响应头。</p>
</li>
</ul>
<p>Core:</p>
<ul>
<li>
<p>功能：添加了标签支持。</p>
</li>
<li>
<p>功能：添加了<code>setImmediate()</code>方法。</p>
</li>
<li>
<p>功能：增加了对对象文字的简写属性名称的支持。</p>
</li>
<li>
<p>错误修正：修复了<code>Function.prototype.bind()</code>。</p>
</li>
<li>
<p>错误修正：修复了包含换行符的字符串文字的解析。</p>
</li>
<li>
<p>错误修正：报告变量参考错误中的固定行号。</p>
</li>
<li>
<p>错误修正：修复了创建长 UTF8 字符串的问题。</p>
</li>
<li>
<p>错误修正：修复了在<code>String.prototype.split()</code>中为 Unicode 字符串设置特殊响应 Headers。</p>
</li>
<li>
<p>错误修正：修复了<code>String.prototype.split()</code>中的 heap-buffer-overflow。</p>
</li>
<li>
<p>错误修正：修复了<code>Array.prototype.fill()</code>。感谢 Artem S. Povalyukhin。</p>
</li>
<li>
<p>改进：与函数调用有关的代码被重构。感谢洪志道。</p>
</li>
<li>
<p>改进：与变量相关的代码被重构。感谢洪志道。</p>
</li>
<li>
<p>改进：解析器被重构。感谢洪志道。</p>
</li>
<li>
<p>改进：报告异常中的文件名。</p>
</li>
</ul>
<p><a href="" id="njs0.2.7"></a></p>
<h4 id="njs-027-的更改"><a href="#njs-027-的更改" id="njs-027-的更改"></a>njs 0.2.7 的更改</h4>
<p>发布日期：2018 年 12 月 25 日</p>
<p>Core:</p>
<ul>
<li>
<p>功能：其余参数语法(不支持解构)。感谢 Alexander Pyshchev。</p>
</li>
<li>
<p>功能：添加了<code>Object.entries()</code>方法。</p>
</li>
<li>
<p>功能：添加了<code>Object.values()</code>方法。</p>
</li>
<li>
<p>改进：代码生成器重构和简化。</p>
</li>
<li>
<p>错误修正：修复了自动分号插入问题。</p>
</li>
<li>
<p>错误修正：修复了复合分配中的分配表达式。</p>
</li>
<li>
<p>错误修正：修复了 Byte 和 UTF8 字符串的比较。</p>
</li>
<li>
<p>错误修正：固定的迭代变量类型为数组形式。</p>
</li>
<li>
<p>错误修正：修复了没有 librt 的平台上的构建。</p>
</li>
<li>
<p>错误修正：已修复其他错误。</p>
</li>
</ul>
<p><a href="" id="njs0.2.6"></a></p>
<h4 id="njs-026-的更改"><a href="#njs-026-的更改" id="njs-026-的更改"></a>njs 0.2.6 的更改</h4>
<p>发行日期：2018 年 11 月 27 日</p>
<p>Core:</p>
<ul>
<li>
<p>特点：使内置原型可变。</p>
</li>
<li>
<p>特点：使全局对象可变。</p>
</li>
<li>
<p>功能：<code>console.time()</code>和<code>console.timeEnd()</code>方法。</p>
</li>
<li>
<p>功能：允许重新声明变量和函数。</p>
</li>
<li>
<p>功能：扩展<code>Object.defineProperty()</code>规范一致性。</p>
</li>
<li>
<p>功能：为 CLI 引入了安静模式，以处理来自 stdin 的简单表达式。</p>
</li>
<li>
<p>功能：引入了紧凑的回溯形式来处理堆栈溢出。</p>
</li>
<li>
<p>改进：改进了各种 exceptions 的措词。</p>
</li>
<li>
<p>错误修正：修正了关闭值的处理。</p>
</li>
<li>
<p>错误修正：修复了各种值类型的相等运算符。</p>
</li>
<li>
<p>错误修正：修正了在各种范围内对“ this”关键字的处理。</p>
</li>
<li>
<p>错误修正：修复了处理<code>Object.keys()</code>中的非对象值。</p>
</li>
<li>
<p>错误修正：修复了<code>if</code>语句中 throw 语句的解析。</p>
</li>
<li>
<p>错误修正：修复了 throw 语句后解析换行符的问题。</p>
</li>
<li>
<p>错误修正：修复了 if 语句中不带换行符的语句解析。</p>
</li>
<li>
<p>错误修正：固定大小<code>uint32_t</code>在<code>njs_array_expand()</code>中溢出。</p>
</li>
<li>
<p>错误修正：已将<code>typeof</code>运算符固定为<code>object_value</code>类型。</p>
</li>
<li>
<p>错误修正：已修复其他错误。</p>
</li>
</ul>
<p><a href="" id="njs0.2.5"></a></p>
<h4 id="njs-025-的更改"><a href="#njs-025-的更改" id="njs-025-的更改"></a>njs 0.2.5 的更改</h4>
<p>发行日期：2018 年 10 月 30 日</p>
<p>nginx modules:</p>
<ul>
<li>
<p>错误修正：修正了流模块中未决事件的计数。</p>
</li>
<li>
<p>错误修正：修复了流模块中的<code>s.off()</code>。</p>
</li>
<li>
<p>错误修正：修复了流模块中<code>js_filter</code>中数据块的处理。</p>
</li>
<li>
<p>错误修正：修复了 http 模块中的 http <code>status</code>和<code>contentType</code> getter。</p>
</li>
<li>
<p>错误修正：修复了 http 模块中的 http 响应和父获取器。</p>
</li>
</ul>
<p>Core:</p>
<ul>
<li>
<p>功能：参数对象支持。</p>
</li>
<li>
<p>功能：非整数分数支持。</p>
</li>
<li>
<p>改进：处理<code>Array.prototype.slice()</code>中的非数组值。</p>
</li>
<li>
<p>错误修正：修复了<code>Array.prototype.length</code>个设置器</p>
</li>
<li>
<p>错误修正：固定<code>njs_array_alloc()</code>的长度&gt; 2 ** 31.</p>
</li>
<li>
<p>错误修正：在 32 位拱门上处理<code>njs_array_alloc()</code>中的 int 溢出。</p>
</li>
<li>
<p>错误修正：修复了代码大小不匹配的错误消息。</p>
</li>
<li>
<p>错误修正：修复了循环中的删除运算符。</p>
</li>
<li>
<p>错误修正：修复了<code>Object.getOwnPropertyDescriptor()</code>的复杂对象(从<code>Array</code>和<code>string</code>值继承)。</p>
</li>
<li>
<p>错误修正：修复了<code>Object.prototype.hasOwnProperty()</code>的非对象属性</p>
</li>
<li>
<p>错误修正：已修复其他错误。</p>
</li>
</ul>
<p><a href="" id="njs0.2.4"></a></p>
<h4 id="njs-024-的更改"><a href="#njs-024-的更改" id="njs-024-的更改"></a>njs 0.2.4 的更改</h4>
<p>发行日期：2018 年 9 月 18 日</p>
<p>nginx modules:</p>
<ul>
<li>更改：流模块处理程序已重构。</li>
</ul>
<p>新方法和属性：<a href="njs-reference.html#s_on">s.on()</a>，<a href="njs-reference.html#s_off">s.off()</a>，<a href="njs-reference.html#s_allow">s.allow()</a>，<a href="njs-reference.html#s_done">s.done()</a>，<a href="njs-reference.html#s_decline">s.decline()</a>，<a href="njs-reference.html#s_deny">s.deny()</a>。</p>
<p><a href="njs-reference.html#stream">Stream</a>对象的已删除属性：<code>s.OK</code>，<code>s.ABORT</code>，<code>s.AGAIN</code>，<code>s.DECLINED</code>，<code>s.ERROR</code>(替换为<a href="njs-reference.html#s_allow">s.allow()</a>，<a href="njs-reference.html#s_done">s.done()</a>，<a href="njs-reference.html#s_deny">s.deny()</a>)。</p>
<p><code>s.buffer</code>(用于将读取的内容替换为相应回调的 data 参数，用于写入，则使用<a href="njs-reference.html#s_send">s.send()</a>)。</p>
<p><code>s.fromUpstream</code>(替换为对应事件的回调)。</p>
<p><code>s.eof</code>(替换为``<a href="njs-reference.html#s_on_callback_last">flags.last</a>'')。</p>
<p>Core:</p>
<ul>
<li>
<p>功能：已添加<code>Function.prototype.length</code>。</p>
</li>
<li>
<p>功能：引入了沙箱模式。</p>
</li>
<li>
<p>改进：在适当的地方添加了异常字符串。</p>
</li>
<li>
<p>改进：改进了原始类型转换异常的措辞。</p>
</li>
<li>
<p>错误修正：抛出<code>TypeError</code>以尝试更改冻结的属性。</p>
</li>
<li>
<p>错误修正：修复了<code>Object.defineProperty()</code>的现有属性。</p>
</li>
<li>
<p>错误修正：在 for 中进行迭代时要尊重可枚举属性。</p>
</li>
<li>
<p>错误修正：尊重属性处理程序的可写属性。</p>
</li>
<li>
<p>错误修正：修复了函数参数中的异常处理。</p>
</li>
<li>
<p>错误修正：修复了<code>Object.prototype.toString</code>的不同值类型。</p>
</li>
<li>
<p>错误修正：修复了对象类型参数的<code>Object()</code>构造函数。</p>
</li>
<li>
<p>错误修正：修复了对象和字符串的比较。</p>
</li>
<li>
<p>错误修正：修复了<code>String.slice()</code>的未定义参数。</p>
</li>
<li>
<p>错误修正：已修复其他错误。</p>
</li>
</ul>
<p><a href="" id="njs0.2.3"></a></p>
<h4 id="njs-023-的更改"><a href="#njs-023-的更改" id="njs-023-的更改"></a>njs 0.2.3 的更改</h4>
<p>发布日期：2018 年 7 月 31 日</p>
<p>nginx modules:</p>
<ul>
<li>
<p>错误修正：从<code>Reply</code>对象发出子请求会导致分段错误。</p>
</li>
<li>
<p>错误修正：获取主要<a href="njs-reference.html#http">HTTP Request</a>对象的 parent 属性会导致分段错误。</p>
</li>
</ul>
<p>Core:</p>
<ul>
<li>
<p>功能：添加了漂亮的字符串表示形式。</p>
</li>
<li>
<p>功能：正确打印浮点数。</p>
</li>
<li>
<p>功能：正确解析浮点数。</p>
</li>
<li>
<p>功能：<a href="njs-reference.html#string_bytesfrom">String.bytesFrom()</a>方法(将<code>hex</code>，<code>base64</code>，<code>base64url</code>解码为字节字符串)。</p>
</li>
<li>
<p>功能：<code>String.padStart()</code>和<code>String.padEnd()</code>方法。</p>
</li>
<li>
<p>功能：增加了对二进制文字的支持。</p>
</li>
<li>
<p>改进：在数字解析中添加了有关非法令牌的信息。</p>
</li>
<li>
<p>改进：八进制文字值允许大写的<code>O</code>。</p>
</li>
<li>
<p>改进：在<code>console.log()</code>中添加了对多个参数的支持。</p>
</li>
<li>
<p>错误修正：修复了将<code>call()</code>应用于外部值的方法。</p>
</li>
<li>
<p>错误修正：固定加法运算符应用于一个对象。</p>
</li>
<li>
<p>错误修正：修复了<code>njs_vm_value_to_ext_string()</code>中的异常处理。</p>
</li>
<li>
<p>错误修正：修正了<code>Number()</code>的布尔值，空值和未定义的参数。</p>
</li>
<li>
<p>错误修正：修复了设置非数字<code>Array.length</code>的错误处理。</p>
</li>
<li>
<p>错误修正：修复了全局对象的自动补全。</p>
</li>
<li>
<p>错误修正：已修复其他错误。</p>
</li>
</ul>
<p><a href="" id="njs0.2.2"></a></p>
<h4 id="njs-022-的更改"><a href="#njs-022-的更改" id="njs-022-的更改"></a>njs 0.2.2 的更改</h4>
<p>发行日期：2018 年 6 月 19 日</p>
<p>nginx modules:</p>
<ul>
<li>
<p>更改：将 HTTP <code>Response</code>和<code>Reply</code>合并为<a href="njs-reference.html#http">HTTP Request</a>。 <code>Request</code>的新成员：</p>
</li>
<li>
<p><code>req.status</code> ( <code>res.status</code> )</p>
<ul>
<li>
<p><code>req.parent</code> ( <code>reply.parent</code> )</p>
</li>
<li>
<p><code>req.requestBody</code> ( <code>req.body</code> )</p>
</li>
<li>
<p><code>req.responseBody</code> ( <code>reply.body</code> )</p>
</li>
<li>
<p><code>req.headersIn</code> ( <code>req.headers</code> )</p>
</li>
<li>
<p><code>req.headersOut</code> ( <code>res.headers</code> )</p>
</li>
<li>
<p><code>req.sendHeader()</code> ( <code>res.sendHeader()</code> )</p>
</li>
<li>
<p><code>req.send()</code> ( <code>res.send()</code> )</p>
</li>
<li>
<p><code>req.finish()</code> ( <code>res.finish()</code> )</p>
</li>
<li>
<p><code>req.return()</code> ( <code>res.return()</code> )</p>
</li>
</ul>
</li>
</ul>
<p><code>Request</code>弃用的成员：</p>
<ul>
<li>
<p><code>req.body</code>(使用<code>req.requestBody</code>或<code>req.responseBody</code>)</p>
<ul>
<li>
<p><code>req.headers</code>(使用<code>req.headersIn</code>或<code>req.headersOut</code>)</p>
</li>
<li>
<p><code>req.response</code></p>
</li>
</ul>
</li>
</ul>
<p><code>Response</code>弃用的成员：</p>
<ul>
<li>
<p><code>res.contentLength</code>(使用<a href="njs-reference.html#r_headers_out">req.headersOut</a> <code>['Content-Length']</code>)</p>
<ul>
<li><code>res.contentType</code>(使用<a href="njs-reference.html#r_headers_out">req.headersOut</a> <code>['Content-Type']</code>)</li>
</ul>
</li>
</ul>
<p>不推荐使用的属性将在<a href="#njs0.2.8">next</a>版本中删除。</p>
<ul>
<li>功能：HTTP <a href="njs-reference.html#r_internal_redirect">internalRedirect()</a>方法。</li>
</ul>
<p>Core:</p>
<ul>
<li>错误修正：修复了<code>crypto.createHmac()</code>中的 heap-buffer-overflow。</li>
</ul>
<p><a href="" id="njs0.2.1"></a></p>
<h4 id="njs-021-的更改"><a href="#njs-021-的更改" id="njs-021-的更改"></a>njs 0.2.1 的更改</h4>
<p>发行日期：2018 年 5 月 31 日</p>
<p>nginx modules:</p>
<ul>
<li>
<p>功能：HTTP 请求正文获取器。</p>
</li>
<li>
<p>改进：将 njs vm 移至<code>main</code>配置。</p>
</li>
<li>
<p>改进：改进了<a href="http-ngx_http_js_module.html#js_set">js_set</a>和<a href="http-ngx_http_js_module.html#js_content">js_content</a>指令的日志记录。</p>
</li>
<li>
<p>改进：默认情况下，在<a href="http-ngx_http_js_module.html#js_content">js_content</a>处理程序中将状态代码设置为 500</p>
</li>
<li>
<p>改进：在<a href="http-ngx_http_js_module.html#js_content">js_content</a>处理程序中为返回的状态代码添加了调试功能</p>
</li>
<li>
<p>错误修正：修复了<a href="http-ngx_http_js_module.html#js_include">js_include</a>中的错误记录。</p>
</li>
</ul>
<p>Core:</p>
<ul>
<li>
<p>功能：增加了数组长度设置器。</p>
</li>
<li>
<p>改进：公共 Headers<code>cleanup. njscript.h</code>重命名为<code>njs.h</code>。</p>
</li>
<li>
<p>错误修正：修复了调用<code>digest()</code>之后的加密<code>update()</code>方法。</p>
</li>
<li>
<p>错误修正：修复了<code>crypto.createHmac()</code>大小为\ &lt;= alg size and &gt; 64 的密钥。</p>
</li>
<li>
<p>错误修正：修复了具有空单元格的数组的<code>JSON.stringify()</code>。</p>
</li>
<li>
<p>错误修正：修复了<code>JSON.stringify()</code>中不受支持的类型的异常类型。</p>
</li>
<li>
<p>错误修正：修复了函数未定义参数的处理。</p>
</li>
<li>
<p>错误修正：修复了<code>Object.getOwnPropertyDescriptor()</code>缺失的<code>arg</code>的处理。</p>
</li>
<li>
<p>错误修正：修复了<code>Object.getOwnPropertyDescriptor()</code>中属性的处理。</p>
</li>
<li>
<p>错误修正：修复了<code>Array.length</code>属性的可写标记。</p>
</li>
<li>
<p>错误修正：固定返回值为<code>clearTimeout()</code>。</p>
</li>
<li>
<p>错误修正：修复了<code>njs_vm_external_bind()</code>。</p>
</li>
<li>
<p>错误修正：已修复其他错误。</p>
</li>
</ul>
<p><a href="" id="njs0.2.0"></a></p>
<h4 id="njs-020-的更改"><a href="#njs-020-的更改" id="njs-020-的更改"></a>njs 0.2.0 的更改</h4>
<p>发行日期：2018 年 4 月 3 日</p>
<ul>
<li>
<p>功能：通过 CLI 报告 njs 版本。</p>
</li>
<li>
<p>功能：用于类型转换异常的文本描述。</p>
</li>
<li>
<p>功能：<code>setTimeout()</code>和<code>clearTimeout()</code>方法。</p>
</li>
<li>
<p>功能：字节字符串为<code>hex</code>，<code>base64</code>，<code>base64url</code>编码。</p>
</li>
<li>
<p>功能：<a href="javascript:window.open('https://nodejs.org/api/crypto.html#crypto_class_hash');" target="_blank" rel="noopener noreferrer">Node.js style</a> <code>Crypto</code>个方法。</p>
</li>
<li>
<p>功能：HTTP 和流<code>warn()</code>和<code>error()</code>方法。</p>
</li>
<li>
<p>功能：HTTP <code>subrequest()</code>方法。</p>
</li>
<li>
<p>功能：HTTP <code>return()</code>方法。</p>
</li>
<li>
<p>错误修正：已在核心和交互式 Shell 中修复了其他错误。</p>
</li>
</ul>
<p><a href="" id="njs0.1.15"></a></p>
<h4 id="njs-0115-的更改"><a href="#njs-0115-的更改" id="njs-0115-的更改"></a>njs 0.1.15 的更改</h4>
<p>发行日期：2017 年 11 月 20 日</p>
<ul>
<li>
<p>功能：<code>Error</code>，<code>EvalError</code>，<code>InternalError</code>，<code>RangeError</code>，<code>ReferenceError</code>，<code>SyntaxError</code>，<code>TypeError</code>，<code>URIError</code>对象。</p>
</li>
<li>
<p>功能：八进制文字支持。</p>
</li>
<li>
<p>功能：<a href="javascript:window.open('https://nodejs.org/api/fs.html#fs_file_system');" target="_blank" rel="noopener noreferrer">Node.js style</a> <code>File system</code>访问方法：<code>fs.readFile()</code>，<code>fs.readFileSync()</code>，<code>fs.appendFile()</code>，<code>fs.appendFileSync()</code>，<code>fs.writeFile()</code>，<code>fs.writeFileSync()</code>。</p>
</li>
<li>
<p>功能：nginx 模块在异常时显示回溯。</p>
</li>
<li>
<p>错误修正：已修复其他错误。</p>
</li>
</ul>
<p><a href="" id="njs0.1.14"></a></p>
<h4 id="njs-0114-的更改"><a href="#njs-0114-的更改" id="njs-0114-的更改"></a>njs 0.1.14 的更改</h4>
<p>发行日期：2017 年 10 月 9 日</p>
<ul>
<li>
<p>功能：JSON 对象。</p>
</li>
<li>
<p>功能：交互式 Shell 中的对象级完成。</p>
</li>
<li>
<p>功能：各种配置方面的改进。</p>
</li>
<li>
<p>错误修正：已在核心和交互式 Shell 中修复了其他错误。</p>
</li>
</ul>
<p><a href="" id="njs0.1.13"></a></p>
<h4 id="njs-0113-的更改"><a href="#njs-0113-的更改" id="njs-0113-的更改"></a>njs 0.1.13 的更改</h4>
<p>发行日期：2017 年 8 月 31 日</p>
<ul>
<li>
<p>功能：交互式 Shell 中的<code>console.log()</code>和<code>console.help()</code>方法。</p>
</li>
<li>
<p>功能：交互式 Shell 在异常时打印回溯。</p>
</li>
<li>
<p>功能：默认情况下，如果<code>libedit</code>可用，则为交互式 Shell。</p>
</li>
<li>
<p>错误修正：在命令行模式下处理<code>stdin</code>中的大文件。</p>
</li>
<li>
<p>错误修正：改进了<code>editline</code>检测。</p>
</li>
</ul>
<p><a href="" id="njs0.1.12"></a></p>
<h4 id="njs-0112-的更改"><a href="#njs-0112-的更改" id="njs-0112-的更改"></a>njs 0.1.12 的更改</h4>
<p>发行日期：2017 年 8 月 8 日</p>
<ul>
<li>
<p>功能：交互式 Shell。</p>
</li>
<li>
<p>错误修正：在<code>Object.isSealed()</code>中。</p>
</li>
</ul>
<p><a href="" id="njs0.1.11"></a></p>
<h4 id="njs-0111-的更改"><a href="#njs-0111-的更改" id="njs-0111-的更改"></a>njs 0.1.11 的更改</h4>
<p>发行日期：2017 年 6 月 27 日</p>
<ul>
<li>
<p>功能：<code>Object.keys()</code>，<code>Object.prototype.hasOwnProperty()</code>个方法。</p>
</li>
<li>
<p>功能：<code>Object.defineProperty()</code>，<code>Object.defineProperties()</code>，<code>Object.getOwnPropertyDescriptor()</code>个方法。</p>
</li>
<li>
<p>功能：<code>Object.getPrototypeOf()</code>，<code>Object.prototype.isPrototypeOf()</code>个方法。</p>
</li>
<li>
<p>功能：<code>Object.preventExtensions()</code>，<code>Object.isExtensible()</code>，<code>Object.freeze()</code>，<code>Object.isFrozen()</code>，<code>Object.seal()</code>，<code>Object.isSealed()</code>方法。</p>
</li>
<li>
<p>功能：科学计数法(<code>3.35e10</code>)文字支持。</p>
</li>
<li>
<p>功能：支持十六进制(<code>0x1123</code>)文字。</p>
</li>
<li>
<p>错误修正：处理大型数组索引。</p>
</li>
<li>
<p>错误修正：<code>parseInt()</code>和<code>Date.parse()</code>。</p>
</li>
</ul>
<p><a href="" id="njs0.1.10"></a></p>
<h4 id="njs-0110-的更改"><a href="#njs-0110-的更改" id="njs-0110-的更改"></a>njs 0.1.10 的更改</h4>
<p>发行日期：2017 年 4 月 4 日</p>
<ul>
<li>
<p>功能：嵌套函数和函数闭包。</p>
</li>
<li>
<p>功能：<code>Array.of()</code>，<code>Array.prototype.fill()</code>，<code>Array.prototype.find()</code>，<code>Array.prototype.findIndex()</code>方法。</p>
</li>
<li>
<p>错误修正：修正了其他错误和分段错误。</p>
</li>
</ul>
<p><a href="" id="njs0.1.9"></a></p>
<h4 id="njs-019-的更改"><a href="#njs-019-的更改" id="njs-019-的更改"></a>njs 0.1.9 的更改</h4>
<p>发行日期：2017 年 2 月 1 日</p>
<ul>
<li>错误修正：在 nginx 中使用 njs 时，全局变量未初始化。</li>
</ul>
<p><a href="" id="njs0.1.8"></a></p>
<h4 id="njs-018-的更改"><a href="#njs-018-的更改" id="njs-018-的更改"></a>njs 0.1.8 的更改</h4>
<p>发行日期：2017 年 1 月 24 日</p>
<ul>
<li>
<p>更改：强制<code>strict</code>模式，必须显式声明变量。</p>
</li>
<li>
<p>功能：<code>for</code>和<code>for-in</code>循环支持变量声明。</p>
</li>
<li>
<p>错误修正：全局和功能范围已得到修复。</p>
</li>
<li>
<p>错误修正：现在<code>for-in</code>循环不会丢弃属性变量的最后一个值。</p>
</li>
<li>
<p>错误修正：修正了其他错误和分段错误。</p>
</li>
</ul>
<p><a href="" id="njs0.1.7"></a></p>
<h4 id="njs-017-的更改"><a href="#njs-017-的更改" id="njs-017-的更改"></a>njs 0.1.7 的更改</h4>
<p>发行日期：2016 年 12 月 27 日</p>
<ul>
<li>
<p>更改：<a href="http-ngx_http_js_module.html#js_include">js_include</a>指令已在服务器和位置级别禁用。</p>
</li>
<li>
<p>功能：求幂运算符。</p>
</li>
<li>
<p>错误修正：修正了其他错误和分段错误。</p>
</li>
</ul>
<p><a href="" id="njs0.1.6"></a></p>
<h4 id="njs-016-的更改"><a href="#njs-016-的更改" id="njs-016-的更改"></a>njs 0.1.6 的更改</h4>
<p>发行日期：2016 年 12 月 13 日</p>
<ul>
<li>
<p>更改：<a href="http-ngx_http_js_module.html#js_set">js_set</a>指令已在服务器和位置级别禁用。</p>
</li>
<li>
<p>功能：ES6 <code>Math</code>方法。</p>
</li>
<li>
<p>错误修正：修正了其他错误和分段错误。</p>
</li>
</ul>
</div>
</div>
</section>
<div class="right-sidebar">
<div class="affix"><ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6108808167664152" data-ad-slot="3102929424" data-ad-format="auto" data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></div>
</div>
</div>
<div class="ft">
<a href="#toolbar-title" id="anchorNavigationExGoTop"><i class="fa fa-arrow-up"></i></a>
<footer class="footer">
<div class="footer__container--normal">
<img alt="扫码关注公众号" title="扫码关注公众号" src="static/picture/qr-code.png" width="170" height="170">
<div class="footer__description--normal">
<p class="paragraph footer__author--normal">Docs4dev<sup class="super">&#xAE;</sup>
</p>
<p class="paragraph footer__quote&#45;&#45;normal">
如果你在使用过程中遇到任何问题，可以在 <a href="javascript:window.open('https://github.com/docs4dev/docs4dev-issues');" target="_blank" rel="noopener noreferrer">这里<i class="fa fa-external-link"></i></a> 提issue。
</p>
<div class="footer__main--normal">
<p class="paragraph footer__main__paragraph--normal copyright" style="color: #666 !important;">
<a href="javascript:window.open('https://beian.miit.gov.cn/');">
蜀ICP备14021783号-6
</a>
</p>
<p class="paragraph footer__main__paragraph--normal copyright" style="color: #666 !important;">
Copyright &#xA9; Docs4dev all
right reserved, powered by <a href="index2.html" target="_blank">Docs4dev</a></p>
</div>
</div>
</div>
<div class="box__issues">
</div>
</footer>
</div>
</div>
</div>
</div>
</div>
<script>
  var hasToc = true;
  /*  var downloadable = /!*false*!/ false;
    var editable = /!*false*!/ false;
    var code = /!*"nginx"*!/ false;
    var version = /!*"current"*!/ false;
    var type = /!*"reference"*!/ false;
    var lang = /!*"zh"*!/ 'en';
    //edit link
    require(["gitbook", "jQuery"], function (gitbook, $) {
      gitbook.events.bind('start', function (e, config) {
        // Add edit toolbar to left
        var chapterId = /!*17758*!/ 0;
        if (downloadable) {
          gitbook.toolbar.createButton({
            icon: 'fa fa-download',
            text: '下载',
            onClick: function () {
              window.open('/download?code=' + code + '&version=' + version + '&type=' + type + '&lang=' + lang);
            }
          });
        }
        if (editable) {
          gitbook.toolbar.createButton({
            icon: 'fa fa-edit',
            text: '编辑此页',
            onClick: function () {
              window.open('/docs/edit?chapterId=' + chapterId + '&lang=' + lang);
            }
          });
        }
      });
    });*/
</script>
<script>
    var code = "nginx";
    var lang = "zh";
  </script>

<script src="static/js/autocomplete-js.js"></script>
<script src="static/js/app.min.js"></script>
<script src="static/js/search.min.js"></script>
</body>
</html>
